home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / telecom / e148g0s.zip / EZYCOM.INC < prev    next >
Text File  |  1996-12-05  |  80KB  |  2,193 lines

  1. (* ***********************************************************************
  2. *                                                                        *
  3. *    Ezycom Structures V1.48g0                                           *
  4. *    Copyright (C) Peter Davies 1992-1996.  All Rights Reserved.         *
  5. *                                                                        *
  6. *    Date: 29/11/96                                                      *
  7. *                                                                        *
  8. *********************************************************************** *)
  9.  
  10. (*  Pascal to C
  11.  
  12.      All Strings require one extra character.
  13.      The first field of a string [0] is the length of the string *)
  14.  
  15. (*   Turbo Pascal defines
  16.  
  17.      DateTime = Record
  18.         Year,
  19.         Month,
  20.         Day,
  21.         Hour,
  22.         Min,
  23.         Sec   : word;
  24.      end; *)
  25.  
  26. {$IFNDEF OS2}
  27.    type
  28.       smallint       = integer;
  29.       smallword      = word;
  30.  
  31.    const
  32.       {$IFDEF DPMI}
  33.           OSTYPE = 'DPMI16';
  34.       {$ELSE}
  35.           OSTYPE = 'DOS16';
  36.       {$ENDIF}
  37.  
  38. {$ELSE}
  39.    const
  40.       OSTYPE = 'OS2';
  41.  
  42.   {$AlignRec-}  (* Make sure we use Byte Alignment for records *)
  43. {$ENDIF}
  44.  
  45.  
  46. const
  47.     version       = '1.48g0';
  48.     versionhigh   = 1;
  49.     versionlow    = 48;
  50.     productname   = 'Ezycom';
  51.     copyright     = 'Peter Davies';
  52.     copyrightyear = '1992-1996';
  53.     maxfree       = 1275;
  54.     userfree      = 121;
  55.     constantfilefreespace = 439;
  56.     maxnodes     = 256;
  57.     maxaka       = 32;
  58.     maxmessall   = 1536;
  59.     maxmess      = maxmessall;
  60.     maxbaudrec   = 22;
  61.     maxmenus       = 101;
  62.     maxglobalmenus = 20;
  63.  
  64.     (* Message Types *)
  65.  
  66.     localmail = 0;
  67.     netmail   = 1;
  68.     echomail  = 2;
  69.     passthru  = 3;
  70.     waitthru  = 4;
  71.     allmail   = 5;
  72.     mtLocal     = 0;
  73.     mtNetmail   = 1;
  74.     mtEchomail  = 2;
  75.     mtPassThru  = 3;
  76.     mtWaitThru  = 4;
  77.     mtAllMail   = 5;
  78.     mtInternet  = 6;
  79.     mtNews      = 7;
  80.     mtFax       = 8;
  81.  
  82.     (* Ask Types *)
  83.  
  84.     askyes    = 0;
  85.     askno     = 1;
  86.     askask    = 2;
  87.     askaskyes = 2;   (* extended ask defaults to yes *)
  88.     askaskno  = 3;   (* extended ask defaults to no *)
  89.  
  90.     (* Phone Types *)
  91.  
  92.     business  = 0;
  93.     data      = 1;
  94.     nophone   = 2;
  95.  
  96.     (* File Size Types *)
  97.  
  98.     nosize    = 0;
  99.     sizebytes = 1;
  100.     sizekilobytes = 2;
  101.  
  102.     (* Message Kinds Type *)
  103.  
  104.     public        = 0;
  105.     private       = 1;
  106.     privatepublic = 2;
  107.  
  108.     (* Swapping Types *)
  109.  
  110.     SwapwithNone   = 0;
  111.     SwapwithEMS    = 1;
  112.     SwapwithXMS    = 2;
  113.     SwapwithDISK   = 3;
  114.     SwapwithEMSXMS = 4;
  115.     SwapwithXMSEMS = 5;
  116.  
  117.     (* User Attributes *)
  118.  
  119.     usr1deleted          = 0;
  120.     usr1clrscr           = 1;
  121.     usr1moreprompt       = 2;
  122.     usr1ansicapable      = 3;
  123.     usr1nokill           = 4;
  124.     usr1filepointignore  = 5;
  125.     usr1fullscreened     = 6;
  126.     usr1quietmode        = 7;
  127.     usr2ignorefileratios = 0;
  128.     usr2ibmextended      = 1;
  129.     usr2dateformat       = 2;
  130.     usr2ignorepaging     = 3;
  131.     usr2excludeuser      = 4;
  132.     usr2avatarcapable    = 5;
  133.     usr2ignoretime       = 6;
  134.     usr2ignoremessratio  = 7;
  135.     usr3nopagesound      = 0;
  136.     usr3pageatlogon      = 1;
  137.     usr3holdmailbox      = 2;
  138.     usr3combinedmailbox  = 3;
  139.     usr3femaleuser       = 4;
  140.     usr3guestaccount     = 5;
  141.  
  142.     (* Constant ScanTossAttr *)
  143.  
  144.     stdupedetection       = 0;
  145.     stkillnullnetmail     = 1;
  146.     stkeepechoarea        = 2;
  147.     stimportmsgssysop     = 3;
  148.     stbinkleysupport      = 4;
  149.     stkillbadarchives     = 5;
  150.     starcmailcompat       = 6;
  151.     stbinkley5dsupport    = 7;
  152.     stgencrashholdmail    = 8;
  153.     sterasenetmailfattach = 9;
  154.  
  155.     (* Constant ConstantAttr *)
  156.  
  157.     casysopaliasinchat       = 0;
  158.     caautocapturechat        = 1;
  159.     cadisplayfullmessage     = 2;
  160.     canodelmailbundle        = 3;
  161.     carealnamekludge         = 4;
  162.     cawritemessagetoself     = 5;
  163.     caqwkpostingtouser       = 6;
  164.     cashowsysopinonline      = 7;
  165.     caallowtaglinesinbw      = 8;
  166.     cashowcolourinfileareas  = 9;
  167.     cacopyfilescd            = 10;
  168.     calocalupdnonlyfd        = 11;
  169.     caKeepBatchHistory       = 12;
  170.     caNoDupeCheck            = 13;
  171.     caNoFileIDExtract        = 14;
  172.     caConvertFileIDPCBColour = 15;
  173.  
  174.     (* File Line Attributes *)
  175.  
  176.     flchecked            = 0;
  177.     flnokill             = 1;
  178.     floffline            = 2;
  179.     flprivate            = 4;
  180.     fldeleted            = 5;
  181.  
  182.     (* Config ConfigAttr *)
  183.  
  184.     comovelocaluploads   = 0;
  185.  
  186.     (* Language Attribute *)
  187.  
  188.     laDefault            = 0;
  189.  
  190. type
  191.      filestr        = string[12];  (* max length of a filename *)
  192.      domainstr      = string[20];  (* domain string *)
  193.      areatagstr     = string[75];
  194.      asktype        = byte;
  195.      phonetype      = byte;
  196.      msgtype        = byte;
  197.      msgkindstype   = byte;
  198.      showfilesizetype = byte;
  199.      maxstr         = string[255];
  200.      userstring     = string[35];
  201.      date           = string[8];
  202.      str2           = string[2];
  203.      str3           = string[3];
  204.      str4           = string[4];
  205.      str8           = string[8];
  206.      str12          = string[12];
  207.      str23          = string[23];
  208.      str30          = string[30];
  209.      str72          = string[72];
  210.      str128         = string[128];
  211.      flagtype       = array[1..4] of byte;
  212.      grouptype      = array[1..4] of byte;
  213.  
  214.      securitytype  = record
  215.         security    : smallword;
  216.         onflags,
  217.         offflags    : flagtype;
  218.      end;
  219.  
  220.      daterecord     = record
  221.         year        : smallword;
  222.         month       : byte;
  223.         day         : byte;
  224.      end;
  225.  
  226.      netrecord      = record
  227.         zone,
  228.         net,
  229.         node,
  230.         point   : smallword;
  231.      end;
  232.  
  233.      net5drecord    = record
  234.         zone,
  235.         net,
  236.         node,
  237.         point   : smallword;
  238.         domain  : domainstr;
  239.      end;
  240.  
  241.  
  242.     (* **********************************************************
  243.  
  244.        Filename:    <configrec.userbasepath>USERS.BBS
  245.  
  246.        Description: Users File
  247.                     Records in parrallel with USERSEXT.BBS
  248.                     Records in parrallel with LASTCOMB.BBS
  249.  
  250.        Limitations: 65000 records (users) maximum
  251.  
  252.        Sharing:     Open in DenyNone + ReadWrite
  253.                     When appending a new user,
  254.                     Record 0 of USERS.BBS should be locked
  255.                     LASTCOMB.BBS should be written
  256.                     USERSEXT.BBS should be written
  257.                     USERS.BBS should be written
  258.                     Record 0 of USERS.BBS should be unlocked
  259.  
  260.        ********************************************************** *)
  261.  
  262.         usersrecord    = record
  263.            name           : userstring;
  264.            alias          : userstring;
  265.            password       : string[15];
  266.            security       : smallword;
  267.            attribute,
  268.               (* Bit 0 : Deleted
  269.                      1 : Clear Screen
  270.                      2 : More Prompt
  271.                      3 : Ansi Capable
  272.                      4 : Don't Kill User
  273.                      5 : File Points Ignore
  274.                      6 : Full Screen Ed
  275.                      7 : Quiet Mode        *)
  276.            attribute2,
  277.               (* Bit 0 : Ignore File Ratios
  278.                      1 : Extended IBM Characters
  279.                      2 : On = MMDDYY Off = DDMMYY
  280.                      3 : Ignore Paging Hours
  281.                      4 : Exclude User
  282.                      5 : Avatar Capable
  283.                      6 : Ignore Menu Time Restrictions
  284.                      7 : Ignore Message Ratios         *)
  285.            attribute3,
  286.               (* Bit 0 : Do Not Sound Page
  287.                      1 : Page on Logon
  288.                      2 : Hold Mailbox
  289.                      3 : Use Combined Mailbox
  290.                      4 : Gender (false = Male, true = Female)
  291.                      5 : Guest Account
  292.                    6-7 : [Reserved] *)
  293.            attribute4  : byte;
  294.               (* Bit 0-7 [Reserved] *)
  295.            flags       : FlagType;
  296.            dataphone,
  297.            voicephone  : String[14];
  298.         end;
  299.  
  300.  
  301.     (* **********************************************************
  302.  
  303.        Filename:    <configrec.userbasepath>USERSEXT.BBS
  304.  
  305.        Description: Extended Users Information
  306.                     Records in parrallel with USERS.BBS
  307.  
  308.        ********************************************************** *)
  309.  
  310.  
  311.         usersextrarecord = record
  312.            location       : string[25];
  313.            lasttimedate   : longint;
  314.               (* DOS Packed Date/Time *)
  315.            credit,
  316.               (* Users netmail credit *)
  317.            pending        : smallword;
  318.               (* Netmail cost pending export *)
  319.            msgsposted,
  320.            nocalls,
  321.            uploads,
  322.            todayk,
  323.            timeused,
  324.            downloads      : smallword;
  325.            uploadsk,
  326.            downloadsk     : longint;
  327.            screenlength   : byte;
  328.            lastpwdchange  : byte;
  329.            timebanked,
  330.            ksbanked,
  331.            filepoints     : smallword;
  332.            qwkcompression : byte;
  333.            qwkdaysold     : byte;
  334.            comment        : string[40]; (* Sysop/User Comment *)
  335.            colour1_2,  (* To retrieve the first colour AND 15
  336.                           To retrieve the second colour SHR 4  *)
  337.            colour3_4,
  338.            colour5_6,
  339.            colour7_8,
  340.            bkcolour        : byte;
  341.            sessionfailures : byte; (* Number of Session Failures since last
  342.                                       successful logon *)
  343.            topmenu         : str8; (* User's Top Menu *)
  344.            filepointsgiven : smallword;
  345.               (* Number of Filepoints credited since last logon *)
  346.            dateofbirth     : daterecord;
  347.            groups          : grouptype; (* user's group setting (compressed) *)
  348.            regodate,                    (* Start of Registration *)
  349.            firstdate,                   (* Date of First Logon *)
  350.            lastfiledate    : smallword; (* Last Time a New Files Search was done *)
  351.            defprotocol     : char; (* Blank means no default protocol *)
  352.            timeleft        : smallword; (* Users remaining time for today *)
  353.            filearea        : smallword; (* Last file area user used *)
  354.            messarea        : smallword; (* Last message area user used *)
  355.            qwkmaxmsgs      : smallword;
  356.            qwkmaxmsgsperarea : smallword;
  357.            todaybankwk     : smallint; (* Kilobytes Withdrawn from Bank Today
  358.                                         Negative Numbers indicate Deposited *)
  359.            forwardto       : userstring; (* forward local mail to *)
  360.            todaycalls      : byte;    (* Times the user has called today *)
  361.            todaybankwt     : smallint; (* Time Withdrawn from Bank Today
  362.                                          Negative Numbers indicate Deposited *)
  363.            language        : byte;    (* users language *)
  364.            endregodate     : smallword;    (* End Registration Date *)
  365.            tottimeused     : longint; (* Total Time Used by the User
  366.                                          since the last time this field was
  367.                                          reset.  Normally first logon *)
  368.            lastbwpkt       : string[3];
  369.            extraspace      : array[1..userfree] of byte;
  370.         end;
  371.  
  372.     (* **********************************************************
  373.  
  374.        Filename:     <userbasepath>LASTCOMB.BBS
  375.  
  376.        Description:  Used be Ezycom for lastread & combined info
  377.  
  378.        Note:         This record adjusts when the number of
  379.                      conferences change (in steps of 16).
  380.                      IE: 16 conferences takes up HALF of the
  381.                           diskspace of 32 conferences
  382.  
  383.        ********************************************************** *)
  384.  
  385.         userslastrecord = record (* LASTCOMB.BBS *)
  386.            combinedinfo    : smallword;
  387.            lastreadinfo    : array[0..15] of smallword;
  388.         end;
  389.  
  390.  
  391.     (* **********************************************************
  392.  
  393.        Filename:    <configrec.menupath>????????.MNU
  394.  
  395.        Description: Menu Structure
  396.                     Record 0 has a different record structure
  397.  
  398.        Mimimum    : 1 record
  399.        Maximum    : 101 records
  400.  
  401.  
  402.        Record 0 Structure
  403.  
  404.        typ      = HiLight Colour
  405.        display  = Menu Prompt
  406.        colour   = Menu Prompt Colour
  407.  
  408.        all others are undefined
  409.  
  410.        ********************************************************** *)
  411.  
  412.  
  413.         menurecord      = record (* *.MNU *)
  414.            typ            : smallword;
  415.            security       : securitytype;
  416.            maxsecurity    : smallword;
  417.            display        : string[90];
  418.            hotkey         : char;
  419.            miscdata       : string[90];
  420.            colour         : byte;
  421.            timeonline,
  422.            timeleft       : byte;
  423.            timestart,
  424.            timeend        : smallword;
  425.               (* Hours is "* 100" *)
  426.            minbaudrate,
  427.            maxbaudrate    : longint;
  428.            filepoints     : smallword;
  429.            age            : byte;
  430.            attribute      : smallword;
  431.               (* bit 0 : Test Ratio K           / Record 0 : Enter Redraws
  432.                      1 : Test Message/Call Ratio
  433.                      2 : Automatic Option
  434.                      3 : Test Ratio Files
  435.                      4 : Local Keyboard Only
  436.                      5 : Remote Only
  437.                   6-15 : [Reserved] *)
  438.             Node           : array[1..32] of byte;
  439.             GenderAccess   : char;
  440.                (* M=Male F=Female B=Both *)
  441.             PadTo384Bytes  : array[1..134] of byte;
  442.          end;
  443.  
  444.     (* **********************************************************
  445.  
  446.        Filename:    PROTOCOL.EZY
  447.  
  448.        Description: Protocol Record Structure
  449.  
  450.        Size       : 60 records
  451.  
  452.        ********************************************************** *)
  453.  
  454.  
  455.         protocolrecord = record (* PROTOCOL.EZY *)
  456.            name             : string[15];
  457.            activekey        : char;
  458.            attribute        : byte;
  459.               (* bit 0 = enable/disable
  460.                      1 = batch protocol
  461.                      2 = [ Reserved ]
  462.                      3 = both directions
  463.                      4 = up/down
  464.                      5 = bidirectional
  465.                      6-7 [ Reserved ] *)
  466.            logfilename,
  467.            ctlfilename,
  468.            dnctlstring      : string[60];
  469.            dncmdstring,
  470.            upcmdstring      : string[100];
  471.            uplogkeyword,
  472.            dnlogkeyword,
  473.            uperrkeyword,
  474.            dnerrkeyword,
  475.            uperr2keyword,
  476.            dnerr2keyword    : string[10];
  477.            xfernamewordnum  : Byte;
  478.            xfercpswordnum   : byte;
  479.            security         : smallword;
  480.            flags            : flagtype;
  481.            efficiency       : byte;
  482.         end;
  483.  
  484.     (* **********************************************************
  485.  
  486.        Filename     : CONFIG.EZY
  487.  
  488.        Description  : Configuration Record
  489.  
  490.        Size         : 1 record (6144 bytes)
  491.  
  492.        Last Revised : 25/12/92(pwd)
  493.  
  494.        ********************************************************** *)
  495.  
  496.      configrecord = record
  497.                      version      : str8;
  498.    (* unused *)      freespace01  : array[1..77] of byte;
  499.                      logpath,
  500.    (* unused *)      atextpath,
  501.    (* unused *)      amenupath,
  502.    (* unused *)      amnurampath,
  503.                      netmailpath,
  504.                      nodelistpath,
  505.                      msgpath,
  506.                      filepath,
  507.    (* unused *)      freespace02,
  508.                      binkleyoutpath,
  509.                      temppath,
  510.                      userbasepath,
  511.    (* unused *)      aavatarpath,
  512.    (* unused *)      aascpath,
  513.    (* unused *)      aasclowpath,
  514.                      filemaint,
  515.                      fileattachpath,
  516.                      soundpath,
  517.                      fastindexpath : string[60];
  518.                      systempwd,                 (* Password to Logon System *)
  519.                      freespace02a,
  520.                      newuserpwd   : string[15]; (* Password for Newuser *)
  521.                      newtopmenu   : str8;       (* NewUser TopMenu *)
  522.                      newusergroups : array[1..4] of byte;
  523.                      inboundmail,
  524.                      outboundmail,
  525.                      uploadpath,
  526.                      swapfile,
  527.                      multipath    : string[60];
  528.                      brackets     : string[2];
  529.                      inactivitytime,
  530.                      minmesscheck,
  531.                      maxlogintime : byte;
  532.    (* unused *)      freespace03  : smallword;
  533.                      shellswap,
  534.                      highbit,
  535.                      disppass,
  536.                      asklocalpass,
  537.                      fastlogon,
  538.                      sysopremote,
  539.                      printerlog,
  540.                      phone1ask,
  541.                      colourask,
  542.                      aliasask,
  543.                      dobask,
  544.                      phoneforce,
  545.                      direct_video,
  546.                      snow_check   : boolean;
  547.    (* unused *)      freespace04  : byte;
  548.                      screen_blank : byte;
  549.                      oneword      : boolean;
  550.                      checkmail,
  551.                      checkfile,
  552.                      ansiask,
  553.                      fullscreenask,
  554.                      clearask,
  555.                      moreask,
  556.                      avatarask,
  557.                      extendask,
  558.                      usdateask    : asktype;
  559.                      phone2ask    : boolean;
  560.                      phoneformat  : string[14];
  561.                      freespace04a,
  562.                      freespace04b,
  563.                      shellprompt,
  564.                      shell2prompt,
  565.                      enterprompt,
  566.                      chatprompt,
  567.                      listprompt   : string[60];
  568.                      f7keylinetop,
  569.                      f7keylinebot : string[79];
  570.    (* unused *)      freespace05  : array[1..84] of byte;
  571.                      chat2prompt,
  572.    (* unused *)      freespace05a,
  573.    (* unused *)      freespace05b,
  574.    (* unused *)      freespace05c,
  575.    (* unused *)      freespace05d,
  576.                      loadprompt,
  577.    (* unused *)      freespace05e,
  578.    (* unused *)      freespace05f  : string[60];
  579.                      security,
  580.                      logonsecurity : smallword;
  581.                      flags         : flagtype;
  582.                      minpasslength,
  583.    (* constant *)    dispfwind,                (* Status Bar Colour *)
  584.    (* constant *)    dispbwind,                (* Status Bar Colour *)
  585.    (* constant *)    disppopupf,               (* Popup Forground  *)
  586.    (* constant *)    disppopupborder,          (* Popup Border     *)
  587.    (* constant *)    disppopupb,               (* Popup Background *)
  588.    (* constant *)    dispf        : byte;      (* Foreground Colour *)
  589.    (* unused *)      freespace06  : smallword;
  590.                      passlogons   : byte;
  591.                      doblogon     : byte;
  592.                      printerport,
  593.                         (* 0 : LPT1
  594.                            1 : LPT2
  595.                            2 : LPT3
  596.                            3 : COM1
  597.                            4 : COM2
  598.                            5 : COM3
  599.                            6 : COM4  *)
  600.                      passtries      : byte;
  601.                      topmenu        : string[8];
  602.                      IncomingCallStart,          (* start of bell sound *)
  603.                      IncomingCallEnd : smallword;     (* end of bell sound *)
  604.    (* constant *)    watchmess,
  605.    (* constant *)    netmailcredit  : smallword;
  606.                      ansiminbaud    : longint;
  607.                      slowbaud,
  608.                      minloginbaud   : smallword;
  609.                      lowsecuritystart,
  610.                      lowsecurityend,
  611.                      slowstart,
  612.                      slowend        : smallword;
  613.                      quotestring    : string[5];
  614.    (* unused *)      freespace09    : smallword;
  615.                      forcecrashmail,
  616.                      optioncrashmail,
  617.                      netmailfileattach : smallword;
  618.    (* Constant *)    popuphighlight    : byte;     (* Popup Highlight Colour *)
  619.                      GenderAsk         : boolean;
  620.                      maxpages,
  621.                      maxpagefiles,
  622.                      pagelength     : byte;
  623.                      pagestart      : array[0..6] of smallword;
  624.    (* unused *)      freespace50,
  625.                      localfattachsec,
  626.                      sectouploadmess,
  627.                      sectoupdateusers,
  628.                      readsecnewecho,
  629.                      writesecnewecho,
  630.                      sysopsecnewecho,
  631.                      secreplyvianetmail : smallword;
  632.                      netmailkillsent    : asktype;
  633.                      swaponarchive      : byte;
  634.  
  635.    (* unused *)      freespace11    : array[1..9] of byte;
  636.  
  637.    (* Constant *)    popuptext      : byte;           (* Popup Text Colour *)
  638.                      pageend        : array[0..6] of smallword;
  639.                      StartPeriod    : smallword;
  640.    (* unused *)      freespace12    : array[1..24] of byte;
  641.  
  642.                      fp_upload      : smallword; (* File Points Upload Credit *)
  643.  
  644.                      altf           : array[1..10] of string[60];
  645.                      ctrlf          : array[1..10] of string[40];
  646.    (* unused *)      freespace13    : array[1..4] of byte;
  647.                      fp_credit      : smallword; (* Newuser Filepoints *)
  648.                      ks_per_fp,             (* Number of Kilobytes per FP *)
  649.    (* unused *)      freespace14,
  650.                      rego_warn_1,
  651.                      rego_warn_2    : byte;
  652.    (* unused *)      freespace15    : array[1..2] of byte;
  653.    (* constant *)    min_space_1    : smallword;
  654.    (* unused *)      freespace14b   : smallword;
  655.                      scrheight      : boolean; (* 43/50 line mode *)
  656.                      msgtmptype     : boolean;
  657.                         (* True  = MSGTMP
  658.                            False = MSGTMP.<node> *)
  659.                      swapupload     : boolean;
  660.                      phonelogon     : byte;
  661.                      carrierdetect  : byte; (* Carrier Detect (Default=$80) *)
  662.                      newfileshighlight : boolean;
  663.                      max_descrip    : byte;
  664.                      min_descrip    : byte;
  665.                      requestreceipt : smallword;
  666.  
  667.                      freespace16    : array[1..16] of byte;
  668.  
  669.                      fp_percent      : smallword; (* Download Filepoints Credit *)
  670.                      autodetect      : byte;
  671.                         (* Bit 0 : Auto Detect ANSI
  672.                                1 : ANSI Detect for NewUser
  673.                                2 : Auto Detect IEMSI
  674.                                3 : IEMSI Detect for NewUser
  675.                                4 : Auto Detect RIP
  676.                                5-7 [Reserved] *)
  677.                      dispsecurityfile,
  678.                      askforpagereason,
  679.                      delincompletefiles : boolean;
  680.    (* unused *)      freespace18      : byte;
  681.    (* constant *)    swaponfeditview  : byte;
  682.  
  683.    (* unused *)      freespace19      : smallword;
  684.  
  685.                      passchar        : char;
  686.                      localinactivity : boolean;
  687.    (* unused *)      freespace20     : byte;
  688.                      leftbracket     : string[1];
  689.                      rightbracket    : string[1];
  690.                      ignorefp        : smallword; (* Min Security to Ignore FPs *)
  691.                      menuminage      : byte; (* Minimum Age for Age Checks *)
  692.    (* unused *)      freespace22     : array[1..231] of byte;
  693.                      configattr      : smallword;
  694.                         (* Bit  0 : Move Local Uploads
  695.                                1-15 [Reserved] *)
  696.                      usercol1_2,
  697.                      usercol3_4,
  698.                      usercol5_6,
  699.                      usercol7_8,
  700.                      userbkcol       : byte;
  701.                      newusercol2     : byte;
  702.                      chstatcol       : byte;
  703.                      getentercol     : byte;
  704.                      usdateforsysop  : boolean;
  705.                      ezyovrpath      : string[60];
  706.                      DefaultUploader : UserString;
  707.                      ovremsxms       : byte;
  708.                         (* 0 = None
  709.                            1 = XMS
  710.                            2 = EMS
  711.                            3 = XMS/EMS *)
  712.                      swapezy         : byte;
  713.                      filesecpath     : string[60];
  714.    (* unused *)      freespace24     : byte;
  715.                      multitasker     : byte;
  716.                      (*  0 = Do Not Detect or Use Any MultiTasker
  717.                          1 = Auto-Detect
  718.                          2 = Desqview
  719.                          3 = Double DOS
  720.                          4 = OS/2
  721.                          5 = MultiDOS Plus
  722.                          6 = Taskview
  723.                          7 = Topview
  724.                          8 = Windows Enhanced Mode
  725.                          9 = PCMOS
  726.                          10..255 [Reserved] *)
  727.    (* unused *)      freespace24b    : array[1..3] of byte;
  728.                      filereqsec      : smallword;
  729.    (* unused *)      freespace24c    : array[1..255] of char;
  730.                      externaleditor  : string[60];
  731.                      defaultorigin   : string[50];
  732.    (* unused *)      freespace25     : array[1..32] of byte;
  733.                      uploadcredit    : smallword;
  734.                         (* Upload Credit Percentage *)
  735.                      freespace       : array[1..maxfree] of byte;
  736.                   end;
  737.  
  738.     (* **********************************************************
  739.  
  740.        Filename:    CONSTANT.EZY
  741.  
  742.        Description: Constant Configuration Information
  743.  
  744.        ********************************************************** *)
  745.  
  746.         constantrecord    = record
  747.            version         : string[8];
  748.            system          : string[40];
  749.            sysopname,
  750.            sysopalias      : userstring;
  751.            systemlocation  : string[35];
  752.            multiline       : boolean; (* multiline operation *)
  753.            maxmess,                   (* maximum usable message areas *)
  754.            maxfile,                   (* maximum usable file areas *)
  755.            watchmess,                 (* watchdog message area *)
  756.            pagemessboard,             (* paging message board *)
  757.            badpwdmsgboard  : smallword;    (* bad logon message board *)
  758.            mintimeforcall  : byte;    (* minimum time to register call today *)
  759.            DupeTableMsgs   : longint; (* number of messages in ezymail dupe table *)
  760.            MaxCDCopyK      : smallword;    (* Maximum Kilobytes to copy for CD copy for batch *)
  761.            FPDispChars,
  762.            UpldrDispChars,
  763.            DnCntDispChars  : Byte;
  764.            ExpireWarning   : smallword;
  765.            scantossattr,              (* ezymail scan/toss info *)
  766.               (* Bit 0 : Dupe Detection
  767.                      1 : Kill Null Netmail
  768.                      2 : Keep EchoArea Node Receipts
  769.                      3 : Import Messages to Sysop
  770.                      4 : Binkley Support
  771.                      5 : Kill Bad Archives
  772.                      6 : ArcMail 0.6 Compatability
  773.                      7 : Binkley 5D Support
  774.                      8 : Generate Crash Hold Mail
  775.                      9 : Erase Netmail File Attach Files too the System
  776.                    10-15 [Reserved] *)
  777.            constantattr,
  778.               (* Bit 0 : Sysop Alias in Chat
  779.                      1 : Auto Log Chat
  780.                      2 : Display Full Message to User
  781.                      3 : Do not delete outbound mail bundles with no .MSG
  782.                      4 : On means do not use real name kludge line
  783.                      5 : User can write messages to user of same name
  784.                      6 : Users receive their OWN QWK Mail postings back
  785.                      7 : Show Sysop in Who's Online List
  786.                      8 : Allow Taglines in BlueWave
  787.                      9 : Show Colour in filebases
  788.                     10 : Copy files from CD before download
  789.                     11 : Local Uploads/Downloads only allowed from/to Floppy Disk
  790.                     12 : Keep Batch History
  791.                     13 : Do not Check for Duplicate Uploads
  792.                     14 : Do not extract FileIDs on Upload
  793.                     15 : Convert Uploaded FileIDs PCB Colour to Ezycom  *)
  794.            maxmsgsrescan   : smallword;    (* Maximum msgs to rescan (0=disable) *)
  795.            qwkfilename     : str8;    (* Unique QWK Mail filename *)
  796.            qwkmaxmail      : smallword;    (* Maximum Msgs for QWK archive *)
  797.            qwkmsgboard     : smallword;    (* Bad QWK Message Board *)
  798.            UserFileDisplay,
  799.            SysopFileDisplay : String[100];
  800.            MaxDaysOldUpload : smallword;
  801.            MaxFileGroups   : smallword;
  802.            MaxOldNewFileCheck : byte;
  803.            CallTermTime    : byte;      (* number of seconds for call terminator *)
  804.            quotestring     : string[5]; (* quote messsage string *)
  805.            swaponezymail   : byte;      (* ezymail swapping information *)
  806.            unknownarea     : byte;      (* unknown new area tag action *)
  807.               (* 0 : Kill Messages
  808.                  1 : Make a New EchoMail Area
  809.                  2 : Make a New PassThru Area *)
  810.            swaponfeditview : byte;      (* FEdit swapping information *)
  811.            swaponarchive   : byte;      (* Ezymaint swapping information *)
  812.            minspaceupload  : smallword;      (* minimum space to upload *)
  813.            textinputcolour : byte;      (* default text input colour *)
  814.            badmsgboard     : smallword;      (* Bad echomail msg board *)
  815.            netaddress      : array[1..maxaka] of netrecord;
  816.            domain          : array[1..maxaka] of domainstr;
  817.            netmailboard    : array[1..maxaka] of smallword;
  818.            newareagroup    : array[1..maxaka] of char;
  819.            newareastmess   : array[1..maxaka] of smallword;
  820.            newareatemplate : array[1..maxaka] of smallword;
  821.            SysopPwd        : String[15];
  822.            ExitWaitCallPwd : String[15];
  823.            MaxMsgGroups    : smallword;
  824.         end;
  825.  
  826.         compressrecord = record
  827.            echounarccmd    : array[0..9] of String[12];
  828.            echounarcpar    : array[0..9] of String[18];
  829.            echoarccmd      : array[0..9] of String[12];
  830.            echoarcpar      : array[0..9] of String[18];
  831.         end;
  832.  
  833.         constantfilefreespacetype = array[1..constantfilefreespace] of byte;
  834.  
  835. const   (* the following constants are the starting positions in
  836.            CONSTANT.EZY of where to find these structures *)
  837.  
  838.         startofcompress = sizeof(constantrecord) + sizeof(constantfilefreespacetype);
  839.  
  840. type
  841.         constantfilerecord = record
  842.            constant  : constantrecord;
  843.            freespace : constantfilefreespacetype;
  844.            compress  : compressrecord;
  845.         end;
  846.  
  847.     (* **********************************************************
  848.  
  849.        Filename:     MODEM.EZY
  850.  
  851.        Description:  Holds Modem Configuration Information
  852.  
  853.                      Sequence of Reading
  854.                         System>Modem.<node>
  855.                         Current>Modem.Ezy
  856.                         System>Modem.Ezy
  857.  
  858.        Records:      1
  859.  
  860.        Last Revised: 2/8/94
  861.  
  862.        ********************************************************** *)
  863.  
  864.        ModemRecord = record
  865.            Description     : String[20];
  866.            ComPort         : smallword;
  867.            MaxBaud         : longint;
  868.            LockedPort      : boolean;
  869.            ExtendedFossil  : boolean;
  870.            AutoAnswer      : boolean;
  871.            InitResponse    : string[10];
  872.            RingString      : string[10];
  873.            InitTries       : byte;
  874.            InitString1     : string[60];
  875.            InitString2     : string[60];
  876.            BusyString      : string[20];
  877.            AnswerString    : string[20];
  878.            NoCarrierString : string[20];
  879.            ConnectFax      : string[15];
  880.            ModemStart      : smallword;
  881.            ModemEnd        : smallword;
  882.            ModemDelay      : byte;
  883.            AnswerDelay     : byte;
  884.            SendBreak       : boolean;
  885.            OffHook         : boolean;
  886.            ModemBusy       : boolean; (* Toggle DTR or ATH1 *)
  887.            ModemEfficiency : array[1..MaxBaudRec] of smallword;
  888.            ModemBaud       : array[1..MaxBaudRec] of longint;
  889.            ModemConnect    : array[1..MaxBaudRec] of String[20];
  890.            FreeSpace       : array[1..167] of char;
  891.         end;
  892.  
  893.  
  894.     (* **********************************************************
  895.  
  896.        Filename:    LIMITS.EZY
  897.  
  898.        Description: User Security Limits Information
  899.  
  900.        ********************************************************** *)
  901.  
  902.         limitsrecord = record
  903.            comment      : Array[0..20] of Char; (* Security Comment (ZStr) *)
  904.            security     : smallword; (* Security level *)
  905.            time         : smallword; (* Time limit per day *)
  906.            limit        : array[1..maxbaudrec] of smallword;
  907.            ratio        : byte; (* File Ratio *)
  908.            credit       : smallword; (* File Ratio Credit *)
  909.            ratiok       : byte; (* Kilobyte Ratio *)
  910.            creditk      : smallword; (* Kilobyte Ratio Credit *)
  911.            regodays     : smallword; (* Registration in Days *)
  912.            creditmess   : smallword; (* PCR Credit *)
  913.            mess         : smallword; (* PCR (%) *)
  914.            timepercall  : smallword; (* Time limit per call   0=Disabled *)
  915.            callsperday  : byte; (* Maximum Calls Per Day 0=Disabled *)
  916.            maxbankwk,           (* Maximum Withdraw Kilobytes Bank *)
  917.            maxbankwt,           (* Maximum Withdraw Time Bank *)
  918.            maxbankdk,           (* Maximum Deposit Kilobytes Bank *)
  919.            maxbankdt,           (* Maximum Deposit Time Bank *)
  920.            maxkbank,            (* Maximum Allowable Kilobytes in Bank *)
  921.            maxtbank     : smallword; (* Maximum Allowable Time in Bank *)
  922.            freespace    : array[1..32] of byte;
  923.         end;
  924.  
  925.     (* **********************************************************
  926.  
  927.         Filename     : FILES.EZY
  928.  
  929.         Description  : Stores file area information
  930.  
  931.         Last Revised : 25/2/92(pwd)
  932.  
  933.         Records      : 1..65000
  934.  
  935.         Note         : FILEPATH.EZY must have the same amount
  936.                        of records.
  937.  
  938.        ********************************************************** *)
  939.  
  940.         filesezyrecord = record
  941.            name         : string[30];
  942.            attribute,
  943.               (* bit 0  : keep files offline
  944.                      1  : offline allowed
  945.                      2  : sortby date
  946.                      3  : sortby alpha
  947.                      4  : show in online master list
  948.                      5  : show in new files check
  949.                      6  : No Descriptions asked after Upload
  950.                      7  : show in ezymast master list *)
  951.            attribute2,
  952.               (* bit 0-7 [Reserved] *)
  953.            convert      : byte;
  954.               (* 0      = none
  955.                  1      = zip
  956.                  2      = lzh
  957.                  3      = arj
  958.                  4      = pak
  959.                  5      = arc
  960.                  6      = zoo
  961.                  7      = sqz
  962.                  8      = rar
  963.                  9-255  = [ Reserved ] *)
  964.            filegroup    : byte;
  965.            altgroups    : array[1..3] of byte;
  966.            minimumage   : byte;
  967.            upfilearea,
  968.            areapath     : smallword;  (* relates to FILEPATH.EZY *)
  969.            listsecurity,
  970.            upsecurity,
  971.            syssecurity  : securitytype;
  972.            numdaystodel        : smallword;
  973.            numarrivaldaystodel : smallword;
  974.            numdayslastdownload : smallword;
  975.            FileIdxPos   : smallword; (* Position in Files.Idx 0=No Record 1=Record 1*)
  976.            freespace    : array[1..47] of byte;
  977.         end;
  978.  
  979.     (* **********************************************************
  980.  
  981.        Filename:     <systempath>FILES.IDX
  982.  
  983.        Description:  Used by Ezycom as an index into the
  984.                      file areas.  Only used areas are stored
  985.                      in here.  CRCs are calculated the same
  986.                      as that for the fast message record.  Later
  987.                      on, it is planned to provide serveral linked
  988.                      lists, so you can traverse the index in
  989.                      sorted orders.
  990.  
  991.                      The first Record is intentionally left
  992.                      blank.  You should start reading from
  993.                      the second record.
  994.  
  995.        Size:         1 -> ??? records
  996.  
  997.        ********************************************************** *)
  998.  
  999.         fileidxrecord = record
  1000.            recnum         : smallword;    (* 1 = Record 0 *)
  1001.            namecrc        : longint;
  1002.            listsecurity   : securitytype;
  1003.            minimumage     : byte;
  1004.            filegroup      : byte;
  1005.            altgroups      : array[1..3] of byte;
  1006.            attribute,
  1007.            attribute2     : byte;
  1008.            PadTo32Bytes   : array[1..9] of char;
  1009.         end;
  1010.  
  1011.     (* **********************************************************
  1012.  
  1013.        Filename:     <systempath>FILEGRP.BBS
  1014.  
  1015.        Description:  Used by Ezycom as to store group information.
  1016.  
  1017.                      The first Record is intentionally left
  1018.                      blank.  You should start reading from
  1019.                      the second record.
  1020.  
  1021.        Size:         1 -> ??? records
  1022.  
  1023.        ********************************************************** *)
  1024.  
  1025.         filegrouprecord = record
  1026.            name           : array[0..30] of char; (* C String *)
  1027.            accesssecurity : securitytype;
  1028.            minimumage     : byte;
  1029.            freespace      : array[1..6] of char;
  1030.         end;
  1031.  
  1032.     (* **********************************************************
  1033.  
  1034.         Filename     : FILEPATH.EZY
  1035.  
  1036.         Description  : Stores information about where to get
  1037.                        the files
  1038.  
  1039.         Records      : 1..65000
  1040.  
  1041.         Note         : FILES.EZY must have the same amount
  1042.                        of records.
  1043.  
  1044.         Last Revised : 26/12/94(pwd)
  1045.  
  1046.        ********************************************************** *)
  1047.  
  1048.         filepathrecord = record
  1049.            filepath    : string[60];
  1050.            filesbbs    : string[60];
  1051.            ksperfp     : byte;
  1052.            security    : securitytype;
  1053.            uploadarea  : smallword;
  1054.            password    : string[8];
  1055.            minimumage  : byte;
  1056.            attribute   : byte;
  1057.               (* Bit 0 : CD Rom Path
  1058.                      1 : File Displayed as Not Enough Security
  1059.                      2 : Free Downloads
  1060.                      3 : Auto Adopt Files?
  1061.                      4-7 [Reserved] *)
  1062.            CDRomStack  : Byte;
  1063.            freespace   : array[1..109] of byte;
  1064.         end;
  1065.  
  1066.     (* **********************************************************
  1067.  
  1068.         Filename     : FILESEC.EZY
  1069.  
  1070.         Description  : Stores individual (wildcard) file security
  1071.  
  1072.         Records      : 1->infinite  (sorted)
  1073.  
  1074.         Last Revised : 25/2/92(pwd)
  1075.  
  1076.        ********************************************************** *)
  1077.  
  1078.         filesecrecord = record (* FILESEC.EZY *)
  1079.            filename    : string[12];
  1080.            security    : securitytype;
  1081.            password    : string[8];
  1082.            minimumage  : byte;
  1083.            attribute   : byte;
  1084.              (*  Bit 0 : [Reserved]
  1085.                      1 : File Displayed as Not Enough Security
  1086.                      2 : Free Download
  1087.                      3-7 [Reserved] *)
  1088.         end;
  1089.  
  1090.     (* **********************************************************
  1091.  
  1092.         Filename     : filebase path\FLCOUNT.BBS
  1093.  
  1094.         Description  : Stores number of files in each file area
  1095.                        (does not include comment lines)
  1096.  
  1097.         Records      : 1..65000
  1098.                        Always the same as FILES.EZY + FILEPATH.EZY
  1099.  
  1100.         Last Revised : 25/2/92(pwd)
  1101.  
  1102.         Sharing      : Always use DENYNONE + READWRITE
  1103.  
  1104.        ********************************************************** *)
  1105.  
  1106.         (*  Each record contains a word (2 bytes) which stores the
  1107.             amount of files in each file area.
  1108.  
  1109.             When reading the information, just seek to the
  1110.             appropriate record and read the 2 bytes
  1111.  
  1112.             When updating the count, lock the 2 bytes, then read
  1113.             it, then increase/decrease the amount, then write it
  1114.             back, and then release the lock. *)
  1115.  
  1116.  
  1117.     (* **********************************************************
  1118.  
  1119.         Filename     : FLHXXXXX.BBS
  1120.  
  1121.         Description  : Stores file list information
  1122.  
  1123.         Last Revised : 25/2/92(pwd)
  1124.  
  1125.         Sharing      : Always use DENYNONE + READWRITE
  1126.  
  1127.        ********************************************************** *)
  1128.  
  1129.         filelinerecord = record (* FLHXXXXX.BBS *)
  1130.            fltstart     : longint;  (* start of info in FLTXXXXX.BBS *)
  1131.            fltlength    : smallword;     (* length including null termiantor *)
  1132.            attribute    : byte;
  1133.                (* Bit 0 : checked
  1134.                       1 : nokill
  1135.                       2 : offline
  1136.                       3 : [Reserved]
  1137.                       4 : private
  1138.                       5 : deleted
  1139.                       6-7 [Reserved] *)
  1140.  
  1141.               (* if the length of filename is 0, then it is a comment *)
  1142.            filename     : string[12];
  1143.            filepath     : smallword;    (* pointer to filepath.ezy for path of file
  1144.                                       0= do not know where the file is *)
  1145.            fsize        : longint; (* size of the actual file *)
  1146.            fdate,                  (* date of the actual file *)
  1147.            arrivaldate,            (* date the file arrived on the system *)
  1148.            downloads    : smallword;
  1149.            downloaddate : smallword;    (* last time the file was downloaded
  1150.                                       if (downloads = 0) then
  1151.                                          this field is invalid *)
  1152.            attribute2   : byte;
  1153.                (* bit 0-7 [Reserved] *)
  1154.            uploader     : userstring;
  1155.            freespace    : array[1..57] of byte;
  1156.         end;
  1157.  
  1158.     (* **********************************************************
  1159.  
  1160.         Filename     : FLTXXXXX.BBS
  1161.  
  1162.         Description  : Stores file list description information
  1163.  
  1164.         Last Revised : 25/2/92(pwd)
  1165.  
  1166.        ********************************************************** *)
  1167.  
  1168. const
  1169.           fltmaxsize    = 2048;  (* maximum size of a description *)
  1170.  
  1171.  
  1172.      (* The FLTXXXXX.BBS has contains a null terminated string.
  1173.  
  1174.         It is either a comment, or a file description.  The description
  1175.         or comment can be upto fltmaxsize in length.
  1176.  
  1177.         A comment maybe only 1 line long, and may NOT contain line feeds
  1178.         or carriage returns.
  1179.  
  1180.         A description can be any number of lines long, and may contain
  1181.         carriage returns, but may NOT contain line feeds (waste space)
  1182.  
  1183.         When writing to the description file, the file MUST be opened
  1184.         in DENYWRITE + READWRITE.  When reading from it, it MUST
  1185.         be opened in DENYNONE + READONLY *)
  1186.  
  1187.  
  1188. type
  1189.  
  1190.     (* **********************************************************
  1191.  
  1192.         Filename     : EZYDOWN.<node>
  1193.  
  1194.         Description  : Stores Batch Download Information
  1195.  
  1196.         Last Revised : 20/3/93(pwd)
  1197.  
  1198.        ********************************************************** *)
  1199.  
  1200.         predownloadrecord = record
  1201.            filename      : string[12];
  1202.            locationfile  : string[64];  (* path to file *)
  1203.            fsize         : longint; (* KiloBytes *)
  1204.            freedown      : boolean;
  1205.            timetodown    : longint; (* Seconds *)
  1206.            cdromfile     : boolean;
  1207.            CDStack       : Byte;
  1208.            deleted       : boolean;
  1209.            PadTo128Bytes : array[1..38] of byte;
  1210.         end;
  1211.  
  1212.     (* **********************************************************
  1213.  
  1214.         Filename     : EZYUP.<node>
  1215.  
  1216.         Description  : Stores Pre Upload Descriptions
  1217.  
  1218.         Last Revised : 25/2/92(pwd)
  1219.  
  1220.        ********************************************************** *)
  1221.  
  1222.         preuploadrecord = record  (* EZYUP.<node> *)
  1223.            filename      : string[12];
  1224.            description   : array[0..fltmaxsize] of char;
  1225.         end;
  1226.  
  1227.     (* **********************************************************
  1228.  
  1229.         Filename     : <configrec.userbasepath>MAINTDN.BBS
  1230.  
  1231.         Description  : Stores Information for download counts
  1232.                        and file points credit.
  1233.  
  1234.                        MAINTDN.BBS is created by Ezycom for
  1235.                        processing by EzyFile
  1236.  
  1237.         Last Revised : 29/11/95(pwd)
  1238.  
  1239.        ********************************************************** *)
  1240.  
  1241.         maintenancerecord = record
  1242.            filename        : string[12];
  1243.            filesize        : longint;
  1244.            filepoint       : smallword;
  1245.            downloadercrc32 : longint;
  1246.         end;
  1247.  
  1248.     (* **********************************************************
  1249.  
  1250.         Filename     : <configrec.userbasepath>MAINTUSR.BBS
  1251.  
  1252.         Description  : Stores Information for file points credit.
  1253.  
  1254.                        MAINTUSR.BBS is created by EzyFile for
  1255.                        processing by UserComp
  1256.  
  1257.         Last Revised : 29/11/95(pwd)
  1258.  
  1259.        ********************************************************** *)
  1260.  
  1261.  
  1262.         FilePointsMaintenanceRecord = record
  1263.            FilePoints    : smallword;
  1264.            Uploader      : userstring;
  1265.         end;
  1266.  
  1267.     (* **********************************************************
  1268.  
  1269.         Filename     : FFPTR.BBS
  1270.  
  1271.         Description  : Index Pointer File for the Fast Find Index
  1272.  
  1273.         Last Revised : 25/2/92(pwd)
  1274.  
  1275.         Format       : Files with First Character #0 through to #64
  1276.                        start at Position 0 in FFIDX.BBS
  1277.  
  1278.                        [730] is all new files after the last sort
  1279.                        [729] is all files with a first letter after
  1280.                              'Z' (besides new files)
  1281.                        [1..728] is files that start with A#0 through
  1282.                                 to Z#255
  1283.                        eg: AA is 2, AB is 3, ZZ is 727, ZY is 726
  1284.  
  1285.                        A value of 0x0FFFFFFFF (-1) in any position
  1286.                        indicates no files are present for that
  1287.                        position.
  1288.  
  1289.        ********************************************************** *)
  1290.  
  1291.         fastpointerrecord = array[1..730] of longint;
  1292.  
  1293.     (* **********************************************************
  1294.  
  1295.         Filename     : FFIDX.BBS
  1296.  
  1297.         Description  : Index File of all files available for download
  1298.  
  1299.         Last Revised : 1/2/94 (pwd)
  1300.  
  1301.         Records      : 0..Infinite
  1302.  
  1303.         To add a file to the fast find index, just add an extra
  1304.         record to the end of this file.  File sharing should be
  1305.         DENYNONE + READWRITE
  1306.  
  1307.        ********************************************************** *)
  1308.  
  1309.         fastindexrecord = record
  1310.            name       : filestr;
  1311.            filepath   : smallword;    (* FILEPATH.EZY 1 -> *)
  1312.            attribute  : byte;
  1313.               (* Bit 0 : Deleted
  1314.                      1-7 [Reserved] *)
  1315.            filesize   : longint;
  1316.         end;
  1317.  
  1318.     (* **********************************************************
  1319.  
  1320.        Filename      : <multipath>ONLINE.BBS
  1321.  
  1322.        Description   : Used by Ezycom to store online information
  1323.  
  1324.        Minimum Size  : 1 Record
  1325.        Maximum Size  : 250 Records
  1326.  
  1327.        Last Revised  : 1/2/94 (pwd)
  1328.  
  1329.        Notes         : While in a door, it is possible to give
  1330.                        Ezycom more information about the door.
  1331.                        This can be done by creating a file called
  1332.                        <systempath>USERDOES.<node>.
  1333.  
  1334.                        When Ezycom is waiting for a call from a
  1335.                        particular node, information can be displayed
  1336.                        in the who's online list.  By making a simple
  1337.                        1 line text file in <systempath>NODEINFO.<node>
  1338.  
  1339.        ********************************************************** *)
  1340.  
  1341.         onlinerecord   = record
  1342.            name            : userstring;
  1343.            alias           : userstring;
  1344.            status          : byte;
  1345.            (* 0 - Active
  1346.               1 - [Reserved]
  1347.               2 - Downloading
  1348.               3 - Uploading
  1349.               4 - [Reserved]
  1350.               5 - Message Browsing
  1351.               6 - Door
  1352.               7 - Chat with Sysop
  1353.               8 - Chat with Other Users Channel 000
  1354.               ...................................
  1355.             207 - Chat with Other Users Channel 199 (200 channels)
  1356.             208 - 252 [Reserved]
  1357.             253 - Node Not Active in Any Way
  1358.             254 - User Logging On
  1359.             255 - Waiting for Caller *)
  1360.            attribute : byte;
  1361.            (* Bit 0 - Quiet Do Not Disturb
  1362.                   1-7 [Reserved] *)
  1363.            baud            : longint;
  1364.            location        : string[25];
  1365.            lasttimeupdated : longint;
  1366.               (* This field should always be updated when the record is
  1367.                  modified in ANY way by the user online. *)
  1368.            freespace       : array[1..20] of char;
  1369.         end;
  1370.  
  1371.     (* **********************************************************
  1372.  
  1373.        Filename:     <multipath>MESSNODE.<node>
  1374.  
  1375.        Description:  Used by Ezycom for conferencing
  1376.  
  1377.        Minimum Size: 0 Records (Maybe not present!)
  1378.        Maximum Size: Unlimited
  1379.  
  1380.        Sharing:
  1381.             Writing: Denynone + WriteOnly
  1382.             Reading: Denyall + ReadWrite (Truncate after read)
  1383.  
  1384.        ********************************************************** *)
  1385.  
  1386.         multimessagerecord = record
  1387.             from           : userstring;
  1388.             fromnode       : smallword;
  1389.             message        : string[80];
  1390.             privatemsg     : boolean;
  1391.         end;
  1392.  
  1393.     (* **********************************************************
  1394.  
  1395.        Filename:     <userbase>BESTSTAT.BBS
  1396.  
  1397.        Description:  Used by Ezycom to store best user stats
  1398.  
  1399.        Minimum Size: 0 Records (Maybe not present!)
  1400.        Maximum Size: 200 Records
  1401.  
  1402.        ********************************************************** *)
  1403.  
  1404.         bestuserrecord     = record
  1405.            bestname       : array[1..7] of userstring;
  1406.            (* BestName[1] is for BestMessages
  1407.               BestName[2] is for BestCalls
  1408.               .....
  1409.               BestName[7] is for BestDownK *)
  1410.            bestmessages,
  1411.            bestcalls,
  1412.            bestups,
  1413.            bestdns,
  1414.            bestfps        : smallword;
  1415.            bestupk,
  1416.            bestdownk      : longint;
  1417.         end;
  1418.  
  1419.     (* **********************************************************
  1420.  
  1421.        Filename:     <msgpath>\AREA<(<area>-1)/100+1>\MH<area>.BBS
  1422.                      eg: \ezy\msgbase\area1\mh00001.bbs     for area 1
  1423.                      eg: \ezy\msgbase\area10\mh01001.bbs    for area 1001
  1424.                      eg: \ezy\msgbase\area100\mh10001.bbs   for area 10001
  1425.  
  1426.        Description:  Used by Ezycom to store message header
  1427.  
  1428.        ********************************************************** *)
  1429.  
  1430.         msghdrrecord   = record
  1431.            prevreply,
  1432.            nextreply      : smallword;
  1433.               (* 0 = No Reply Chain *)
  1434.            startposition,
  1435.               (* Physical Start Position in MSGT???.BBS *)
  1436.            messagelength  : longint;
  1437.              (* Message Length including Null Terminator *)
  1438.            destnet,
  1439.            orignet        : netrecord;
  1440.            cost           : smallword;
  1441.            msgattr,
  1442.               (*  Bit 0 : Deleted
  1443.                       1 : Netmail pending export
  1444.                       2 : [Reserved]
  1445.                       3 : Private
  1446.                       4 : Received
  1447.                       5 : Echomail pending export
  1448.                       6 : Locally generated msg
  1449.                       7 : Do not kill message *)
  1450.            netattr,
  1451.               (*  Bit 0 : Kill/sent
  1452.                       1 : Sent
  1453.                       2 : File Attach (netmail or local file attach)
  1454.                       3 : Crash
  1455.                       4 : File Req
  1456.                       5 : Request Receipt
  1457.                       6 : Audit Request
  1458.                       7 : Is a Return Receipt *)
  1459.            extattr   : byte;
  1460.               (*  Bit 0-7 [Reserved] *)
  1461.            posttimedate : longint;
  1462.               (* DOS Format Packed DateTime *)
  1463.            recvtimedate : longint;
  1464.               (* DOS Format Packed DateTime *)
  1465.            whoto,
  1466.            whofrom        : userstring;
  1467.            subject        : string[72];
  1468.         end;
  1469.  
  1470.     (* **********************************************************
  1471.  
  1472.        Filename:     <msgpath>\AREA<<area-1>/100+1>\MT<area>.BBS
  1473.                      eg: \ezy\msgbase\area1\mt00001.bbs     for area 1
  1474.                      eg: \ezy\msgbase\area10\mt01001.bbs    for area 1001
  1475.                      eg: \ezy\msgbase\area100\mt10001.bbs   for area 10001
  1476.  
  1477.        Description:  Used by Ezycom to store message text
  1478.  
  1479.        ********************************************************** *)
  1480.  
  1481.         (* Message Text
  1482.  
  1483.                 Each text part of the message starts at 'startposition',
  1484.            and continues on until a NULL terminator is found, or end
  1485.            of file is reached (shouldn't happen, but just in case).
  1486.            Each message is contained of plain text, with 0x08D
  1487.            terminators for wrapped lines or 0x0D terminators for hard
  1488.            carriage returns.  No line of text should exceed 79 characters
  1489.            excluding the terminator *)
  1490.  
  1491.     (* **********************************************************
  1492.  
  1493.        Filename:     <msgpath>MSGFAST.BBS
  1494.  
  1495.        Description:  Used by Ezycom for mail checks
  1496.  
  1497.        ********************************************************** *)
  1498.  
  1499.         msgfastrecord  = record
  1500.            whoto     : longint;
  1501.               (* standard 32 Bit CRC on whoto in MH???.BBS
  1502.                  Username is CRCd in UPPERCASE, and does not
  1503.                  include null terminator or length byte *)
  1504.            msgboard  : smallword;
  1505.            msgnumber : smallword;
  1506.         end;
  1507.  
  1508.     (* **********************************************************
  1509.  
  1510.        Filename:     <msgpath>MSGEXPRT.BBS
  1511.  
  1512.        Description:  Used by Ezycom to tell EzyNet/EzyMail whether
  1513.                      an area needs scanning or not
  1514.  
  1515.        ********************************************************** *)
  1516.  
  1517.         needscanrecord = array[1..maxmess] of boolean;
  1518.  
  1519.     (* **********************************************************
  1520.  
  1521.        Filename:     <msgpath>MSGREPLY.BBS
  1522.  
  1523.        Description:  Used by MsgComp/EzyLink to tell it which
  1524.                      conference(s) need reply chain
  1525.                      linking
  1526.  
  1527.        ********************************************************** *)
  1528.  
  1529.         needreplytype   = array[1..maxmess] of boolean;
  1530.  
  1531.     (* **********************************************************
  1532.  
  1533.        Filename:     <msgpath>MSGCOUNT.BBS
  1534.  
  1535.        Description:  Used by Ezycom and Utilities for
  1536.                      message area counting.
  1537.                      Reading the number of records of
  1538.                      MHxxx.BBS gives the same effect as
  1539.                      reading the conferences count.
  1540.  
  1541.        ********************************************************** *)
  1542.  
  1543.         msgareacounttype = array[1..maxmess] of smallword;
  1544.  
  1545.  
  1546.     (* **********************************************************
  1547.  
  1548.        Filename:     <msgpath>MSGDLTD.BBS
  1549.  
  1550.        Description:  May or may not exist
  1551.                      Lists all the deleted messages on the
  1552.                      system.  MSGCOMP deletes the file since
  1553.                      it packs all the deleted messages.
  1554.  
  1555.        ********************************************************** *)
  1556.  
  1557.         msgdeletedrecord  = record
  1558.            msgboard  : smallword;
  1559.            msgnumber : smallword;
  1560.         end;
  1561.  
  1562.     (* **********************************************************
  1563.  
  1564.        Filename:     <systempath>MESSAGES.EZY
  1565.  
  1566.        Description:  Used by Ezycom to store message areas
  1567.  
  1568.        Size:         1536 records
  1569.  
  1570.        ********************************************************** *)
  1571.  
  1572.         messagerecord  = record
  1573.            name           : string[30];
  1574.            areatag        : areatagstr;
  1575.            qwkname        : string[12];
  1576.            typ            : msgtype;
  1577.            msgkinds       : msgkindstype;
  1578.            attribute,
  1579.            (* Bit 0 : Allow Aliases
  1580.                   1 : Use Alias
  1581.                   2 : Use Alias, Ask for Aliases
  1582.                   3 : [Reserved]
  1583.                   4 : Combined Area Access
  1584.                   5 : Local File attaches
  1585.                   6 : Keep Private Bit on Incoming EchoMail
  1586.                   7 : Security *)
  1587.            attribute2,
  1588.            (* Bit 0 : Show Seenby Lines
  1589.                   1 : Forced Mail Check
  1590.                   2 : Tiny Seenbys
  1591.                   3-4 [Reserved]
  1592.                   5 : Areafix Info Visible
  1593.                   6 : Initial Combined Area Access
  1594.                   7 : Do Not Use in Template *)
  1595.            attribute3     : byte;
  1596.            dayskill,
  1597.            recvkill       : byte;
  1598.            countkill,
  1599.            kilobytekill   : smallword;
  1600.            readsecurity,
  1601.            writesecurity,
  1602.            sysopsecurity  : securitytype;
  1603.            minimumage     : byte;
  1604.            originline     : string[50];
  1605.            originaddress  : byte;
  1606.            seenby         : array[1..maxaka div 8] of byte;
  1607.            areagroup      : char;
  1608.            messgroup      : byte;
  1609.            altgroups      : array[1..3] of byte;
  1610.            echomailfeed   : byte; (* 0=No Uplink *)
  1611.            destnodes      : array[1..maxnodes div 8] of byte;
  1612.            (* Nodes  1 to  8 - DestNode[1]
  1613.               Nodes  9 to 16 - DestNode[2]
  1614.               Nodes 17 to 24 - DestNode[3]
  1615.               etc *)
  1616.            MsgIdxPos      : smallword; (* Position in Messages.Idx 0=No Record 1=Record 1*)
  1617.            ArrivalKill    : byte;
  1618.            freespace      : array[1..13] of char;
  1619.         end;
  1620.  
  1621.     (* **********************************************************
  1622.  
  1623.        Filename:     <systempath>MESSAGES.IDX
  1624.  
  1625.        Description:  Used by Ezycom as an index into the
  1626.                      message areas.  Only used areas are stored
  1627.                      in here.  CRCs are calculated the same
  1628.                      as that for the fast message record.  Later
  1629.                      on, it is planned to provide serveral linked
  1630.                      lists, so you can traverse the index in
  1631.                      sorted orders.
  1632.  
  1633.                      The first Record is intentionally left
  1634.                      blank.  You should start reading from
  1635.                      the second record.
  1636.  
  1637.        Size:         1 -> ??? records
  1638.  
  1639.        ********************************************************** *)
  1640.  
  1641.         messageidxrecord = record
  1642.            recnum         : smallword;    (* 1 = Record 0 *)
  1643.            namecrc,
  1644.            areatagcrc,
  1645.            qwknamecrc     : longint;
  1646.            typ            : msgtype;
  1647.            readsecurity,
  1648.            writesecurity  : securitytype;
  1649.            minimumage     : byte;
  1650.            areagroup      : char;
  1651.            messgroup      : byte;
  1652.            altgroups      : array[1..3] of byte;
  1653.            attribute,
  1654.            attribute2,
  1655.            attribute3     : byte;
  1656.            PadTo64Bytes   : array[1..20] of char;
  1657.         end;
  1658.  
  1659.     (* **********************************************************
  1660.  
  1661.        Filename:     <systempath>MSGGRP.BBS
  1662.  
  1663.        Description:  Used by Ezycom as to store group information.
  1664.  
  1665.                      The first Record is intentionally left
  1666.                      blank.  You should start reading from
  1667.                      the second record.
  1668.  
  1669.        Size:         1 -> ??? records
  1670.  
  1671.        ********************************************************** *)
  1672.  
  1673.         messagegrouprecord = record
  1674.            name           : array[0..30] of char; (* C String *)
  1675.            accesssecurity : securitytype;
  1676.            minimumage     : byte;
  1677.            freespace      : array[1..6] of char;
  1678.         end;
  1679.  
  1680.  
  1681.     (* **********************************************************
  1682.  
  1683.        Filename:     <systempath>ECHOMGR.EZY
  1684.  
  1685.        Description:  Used by Ezycom to store node information
  1686.  
  1687.        Last Updated: 1/2/94
  1688.  
  1689.        Size:         256 records
  1690.  
  1691.        ********************************************************** *)
  1692.  
  1693.         echomgrrecord = record
  1694.            destnet     : netrecord;
  1695.            domain      : domainstr;
  1696.            redirectto  : smallword;
  1697.            groups      : grouptype; (* compressed groups A thru Z *)
  1698.            compress    : byte;
  1699.            (* 0 : Compress to ZIP
  1700.               1 : Compress to LZH
  1701.               2 : Compress to ARJ
  1702.               3 : Compress to ARC
  1703.               4 : Compress to PAK
  1704.               5 : Compress to ZOO
  1705.               6 : Compress to SQZ
  1706.               7 : Compress to RAR *)
  1707.            attribute   : byte;
  1708.            (* Bit 0 : Node Active
  1709.                   1 : Crash Mail
  1710.                   2 : Hold Mail
  1711.                   3 : Can Create New Echos
  1712.                   4 : Add to Export on New Echo
  1713.                   5 : Can Delete/Rename Areas
  1714.                   6 : Direct Mail (Off=Routed Mail)
  1715.                   7 : Allow 2D Security *)
  1716.            passwordto,
  1717.            passwordfr  : string[20];
  1718.            dayshold,
  1719.            sendpkttype : byte;
  1720.            (* 0 : Type 2
  1721.               1 : Type 2+
  1722.             2-255 [Reserved] *)
  1723.            maxpktsize,
  1724.            maxarcksize : smallword;
  1725.            arealist    : array[0..64] of char;
  1726.            pktpassword : array[0..8] of char;
  1727.            lastext     : array[0..3] of char;
  1728.            freespace   : array[1..29] of char;
  1729.         end;
  1730.  
  1731.  
  1732.     (* **********************************************************
  1733.  
  1734.        Filename:     EVENTS.EZY (multinode file)
  1735.  
  1736.        Description:  Used by Ezycom to store event information
  1737.  
  1738.        Minimum Size: 1 record
  1739.        Maximum Size: 65000 records
  1740.  
  1741.        ********************************************************** *)
  1742.  
  1743.  
  1744.         eventrecord = record
  1745.            attribute   : byte;
  1746.               (* Bit 0 = Enabled *)
  1747.            starttime   : smallword;
  1748.               (* Hi  Bit = Hour
  1749.                  Low Bit = Min *)
  1750.            errorlevel  : byte;
  1751.            days        : byte;
  1752.               (* Bit 0 : Sunday
  1753.                      1 : Monday
  1754.                          ...
  1755.                      6 : Saturday
  1756.                      7 : [ Reserved ] *)
  1757.            lasttimerun : smallword;
  1758.         end;
  1759.  
  1760.     (* **********************************************************
  1761.  
  1762.        Filename:    <systempath>TODAY.BBS
  1763.                     <systempath>YESTER.BBS
  1764.  
  1765.        Last Update: 1/2/94
  1766.  
  1767.        Description: Used by Ezycom to today's/yesterday's callers
  1768.  
  1769.        ********************************************************** *)
  1770.  
  1771.        ontodayrecord = record
  1772.           line        : byte;
  1773.           name        : userstring;
  1774.           alias       : userstring;
  1775.           location    : string[25];
  1776.           baudrate    : longint;
  1777.           logontime   : smallword;
  1778.           logofftime  : smallword;
  1779.           didwhat     : byte;
  1780.           (* Bit 0 : (N) NewUser
  1781.                  1 : (U) Upload
  1782.                  2 : (D) Download
  1783.                  3 : (R) Read Mail
  1784.                  4 : (S) Sent Mail
  1785.                  5 : (O) Outside
  1786.                  6 : (C) Chat to Sysop and/or User
  1787.                  7 : (P) Paged *)
  1788.           freespace   : array[1..20] of char;
  1789.        end;
  1790.  
  1791.     (* **********************************************************
  1792.  
  1793.        Filename:    <systempath>TIME<node>.BBS
  1794.  
  1795.        Description: Used by Ezycom to store usage information
  1796.  
  1797.        ********************************************************** *)
  1798.  
  1799.        useagerecord  = record
  1800.           startdate      : smallword;
  1801.           busyperhour    : array[0..23] of longint; (* Minutes Used *)
  1802.           busyperday     : array[0..6]  of longint; (* Minutes Used *)
  1803.        end;
  1804.  
  1805.     (* **********************************************************
  1806.  
  1807.        Filename:    <systempath>MSGINFO.<node>
  1808.  
  1809.        Description: Used by Ezycom and Tide to interface to
  1810.                     each other
  1811.  
  1812.        ********************************************************** *)
  1813.  
  1814.        fserecord      = record       (* MSGINFO.<node> *)
  1815.           whofrom      : userstring; (* User Who wrote message *)
  1816.           orignet      : netrecord;  (* From Net Address *)
  1817.           whoto        : userstring; (* User Who message is to *)
  1818.           destnet      : netrecord;  (* To Net Address *)
  1819.           subject      : string[72]; (* Subject of message *)
  1820.           returnstatus : byte;       (* Return Status *)
  1821.           (*   0 : FSE Record Not Used
  1822.                1 : Message Saved
  1823.                2 : Message Aborted
  1824.                3 : User  Inactivity
  1825.                4 : User  Hungup
  1826.                5 : Sysop Hungup
  1827.            6-255 : Reserved *)
  1828.           attribute    : byte;
  1829.           (*   Bit 0 : Can Change Subject
  1830.                    1 : Can Change Whoto
  1831.                    2 : Can Change Private
  1832.                    3 : Private Message
  1833.                    4 : Is Message Forwarded (False = Quoted)
  1834.                        (Providing MSGTMP.<node> exists)
  1835.                    5 : Netmail Message
  1836.                    6 : Avatar Capable (ANSI if not set)
  1837.                    7 : EchoMail Message *)
  1838.           baudrate,               (* Effective Baudrate *)
  1839.           lockedbaud   : longint; (* Locked Baudrate *)
  1840.           comport      : smallword;
  1841.           screenlength : byte;
  1842.           timeleft     : smallword;
  1843.        end;
  1844.  
  1845.  
  1846.  
  1847.     (* **********************************************************
  1848.  
  1849.        Filename:    <msgbasepath>MSGRSCAN.BBS
  1850.  
  1851.        Description: Used by EzyNet and EzyMail for Rescanning a
  1852.                     Message Area for a particular node
  1853.  
  1854.        ********************************************************** *)
  1855.  
  1856.        rescanrecord = record
  1857.           nodetorescan : smallword;
  1858.           msgboard     : smallword;
  1859.        end;
  1860.  
  1861.     (* **********************************************************
  1862.  
  1863.        Filename:    <msgbasepath>MSGSTATS.BBS
  1864.  
  1865.        Description: Written by EzyMail for echomail statistics
  1866.  
  1867.        ********************************************************** *)
  1868.  
  1869.        msgstatsrecord = record
  1870.           tossedboard  : array[1..maxmessall]  of smallword;
  1871.              (* Number of Messages Tossed to Msg Board *)
  1872.           scannedboard : array[1..maxmessall]  of smallword;
  1873.              (* Number of Messages Tossed to Msg Board *)
  1874.           tossednode   : array[1..maxnodes] of longint;
  1875.              (* Number of Messages Tossed to EchoArea Node *)
  1876.        end;
  1877.  
  1878.     (* **********************************************************
  1879.  
  1880.        Filename:    <systempath>EXITINFO.<node>
  1881.  
  1882.        Description: Used by Ezycom in Type 15 exits to return
  1883.                     Used by Ezycom in Type 7 exits for door
  1884.                        information
  1885.  
  1886.        Last Revised : 16/1/94(pwd)
  1887.  
  1888.        ********************************************************** *)
  1889.  
  1890.        exitinforecord = record
  1891.           oldbaud,
  1892.           oldlockedbaud  : smallword;
  1893.           comport        : byte; (* Comport 1 = Com1, etc *)
  1894.           efficiency     : smallword; (* Baud Rate efficiency *)
  1895.           userrecord     : smallword; (* User Record Number (0=User1) *)
  1896.           userinfo       : usersrecord;
  1897.           userextra      : usersextrarecord;
  1898.           sysopname,             (* Sysop's Name *)
  1899.           sysopalias     : userstring;
  1900.           system         : string[40];
  1901.           downloadlimit  : smallword; (* Maximum Download Limit *)
  1902.           timelimit      : smallword; (* Daily Time Limit *)
  1903.           timetakenevent : smallword;
  1904.              (* Number of Minutes Taken from User for Event *)
  1905.           timecreated    : longint;
  1906.              (* Number of Seconds since Midnight *)
  1907.           timeofnextevent   : longint;
  1908.              (* Number of Seconds since Midnight *)
  1909.           timetillnextevent : longint;
  1910.              (* Number of Seconds after Time Created *)
  1911.           dayofnextevent : byte;
  1912.              (* 0 = Sunday
  1913.                 ..........
  1914.                 6 = Saturday
  1915.                 7 = NOEVENT *)
  1916.           errorlevelofnextevent : byte;
  1917.              (* Errorlevel to return from next event *)
  1918.           ratio          : byte; (* File Ratio *)
  1919.           credit         : smallword; (* File Ratio Credit *)
  1920.           ratiok         : byte; (* Kilobyte Ratio *)
  1921.           creditk        : smallword; (* Kilobyte Ratio Credit *)
  1922.           regodays       : smallword; (* Registration Days *)
  1923.           creditmess     : smallword; (* Post Call Ratio Credit *)
  1924.           mess           : smallword; (* Post Call Ratio *)
  1925.           logintimedate  : datetime; (* Login Datetime *)
  1926.           stack          : array[1..20] of str8; (* Menu Stack *)
  1927.           stackpos       : byte; (* Menu Stack Position (0 = No Stack) *)
  1928.           curmenu        : str8; (* Current Menu *)
  1929.           oldpassword    : string[15];
  1930.           limitrecnum    : smallword; (* Limits Record Being Used *)
  1931.           baudrecnum     : byte; (* BaudRate Record Being Used *)
  1932.           ripactive      : boolean;
  1933.           maxpages       : byte; (* Maximum Pages *)
  1934.           pagedsysop     : byte; (* Number of Times User has Paged Sysop *)
  1935.           wantchat       : boolean;
  1936.           pagestart,
  1937.           pageend        : longint; (* Number of Seconds since Midnight *)
  1938.           pagelength     : byte;    (* Page Length *)
  1939.           echoentered,
  1940.           netentered,
  1941.           nextsysop      : boolean;
  1942.           inactivitytime : smallword;    (* Seconds *)
  1943.           protrecnum     : byte;
  1944.              (* Default Protocol Record Number 0=NoDefault *)
  1945.           protname       : string[15]; (* Default Protocol Name *)
  1946.           didwhat        : byte;       (* Didwhat flag for Todays Callers *)
  1947.           pagereason     : string[60];
  1948.           mtasker        : byte;
  1949.             (*  Time Slice Routine to use
  1950.                 0 = No Multitasker
  1951.                 1 = [Reserved]
  1952.                 2 = Desqview
  1953.                 3 = Double DOS
  1954.                 4 = OS/2 or Windows
  1955.                 5 = MultiDOS Plus
  1956.                 6 = TASKview
  1957.                 7 = TOPview
  1958.                 9 = PCMOS
  1959.            10..255 = [Reserved] *)
  1960.           iemsi_session  : boolean;
  1961.           iemsi_req1,
  1962.              (* Bit 0 = News
  1963.                     1 = Mail
  1964.                     2 = File
  1965.                     3 = Clrscr
  1966.                     4 = Quiet
  1967.                     5 = More
  1968.                     6 = FSE
  1969.                     7 = [Reserved] *)
  1970.           iemsi_req2,
  1971.              (* Bit 0-7 = [Reserved] *)
  1972.           iemsi_scrlen   : byte;
  1973.              (* Screen Length for current session
  1974.                 If NOIEMSI session, this is set to the
  1975.                    users screen length *)
  1976.           iemsi_prot,
  1977.              (* Bit 0 = ZModem
  1978.                     1 = SEAlink
  1979.                     2 = Kermit
  1980.                     3 = ZedZap *)
  1981.           iemsi_crt,
  1982.              (* 0 = TTY
  1983.                 1 = ANSI
  1984.                 2 = AVT0+
  1985.                 3 = VT100
  1986.                 4 = VT52 *)
  1987.           iemsi_cap      : byte;
  1988.              (* Bit 0 = CHT
  1989.                     1 = MNU
  1990.                     2 = TAB
  1991.                     3 = ASCII8 *)
  1992.           pagesound      : boolean;
  1993.           timeconnect    : longint; (* time connected this call *)
  1994.           screenon       : boolean; (* whether ezycom is displaying the
  1995.                                        screen locally or not *)
  1996.           baud           : longint; (* Speed between Modem/Modem *)
  1997.           lockedbaud     : longint; (* Speed between Computer/Modem *)
  1998.           freespace      : array[1..86] of byte;
  1999.        end;
  2000.  
  2001.        sysinforecord = record
  2002.           callcount      : longint;
  2003.           lastcaller     : userstring;
  2004.           filessizek     : longint; (* Updated by EzyIDX -BUILD *)
  2005.           newusers,
  2006.           newfiles,
  2007.           newmessages    : smallword;    (* Does NOT include Inbound Echomail *)
  2008.           lastalias      : userstring;
  2009.           laststarttime  : smallword;    (* The start of the last session by a user *)
  2010.           extraspace     : array[1..80] of byte;
  2011.        end;
  2012.  
  2013.     (* **********************************************************
  2014.  
  2015.        Filename     : <nodelistpath>EZYINDEX.<nodelistnum>
  2016.  
  2017.        Description  : Stores Nodelist Information
  2018.  
  2019.        Min Size     : File Not Exist
  2020.  
  2021.        Max Size     : 65000 Records
  2022.  
  2023.        Last Revised : 3/1/94(pwd)
  2024.  
  2025.        Sharing      : Reading       - DenyNone + ReadOnly
  2026.                       Insert/Update - Never (EzyNode does it)
  2027.  
  2028.        ********************************************************** *)
  2029.  
  2030.        nodelistrecord = record
  2031.           nodelistfile  : byte;
  2032.           position      : longint;
  2033.           zone,
  2034.           net           : smallword;
  2035.        end;
  2036.  
  2037.     (* **********************************************************
  2038.  
  2039.        Filename     : <nodelistpath>EZYINDEX.00
  2040.  
  2041.        Description  : AkaIndex is a pointer to which EZYINDEX.<nodelist num>
  2042.                          is used for that Aka.
  2043.                       NodelistFileRecord holds information to a particular
  2044.                          nodelistfile.  (nodelistfile byte in nodelistrecord).
  2045.  
  2046.        Min Size     : AkaIndex + 1 NodelistFileRecord
  2047.  
  2048.        Max Size     : AkaIndex + 255 NodelistFileRecords
  2049.  
  2050.        Last Revised : 3/1/94(pwd)
  2051.  
  2052.        Sharing      : Reading       - DenyNone + ReadOnly
  2053.                       Insert/Update - Never (EzyNode does it)
  2054.  
  2055.        ********************************************************** *)
  2056.  
  2057.  
  2058.        AkaIndex = array[1..maxaka] of byte;
  2059.  
  2060.        nodelistfilerecord = record
  2061.           nodelistpath  : string[79];
  2062.           domain        : domainstr;
  2063.        end;
  2064.  
  2065.     (* **********************************************************
  2066.  
  2067.        Filename     : <nodelistpath>EZYINDEX.COS
  2068.  
  2069.        Description  : Lists all the phone number costing factors
  2070.  
  2071.        Min Size     : 1 Record (Default Cost)
  2072.  
  2073.        Max Size     : Unlimited
  2074.  
  2075.        Last Revised : 3/1/94(pwd)
  2076.  
  2077.        Sharing      : Reading       - DenyNone + ReadOnly
  2078.                       Insert/Update - Never (EzyNode does it)
  2079.  
  2080.        ********************************************************** *)
  2081.  
  2082.        costrecord = record
  2083.          phonenum : string[25];
  2084.          cost     : smallword;
  2085.        end;
  2086.  
  2087.        (* **********************************************************
  2088.  
  2089.        Filename     : <systempath>RUMOURS.BBS
  2090.  
  2091.        Description  : Stores Rumour Information
  2092.  
  2093.        Min Size     : File Not Exist
  2094.  
  2095.        Max Size     : 65000 Records
  2096.  
  2097.        Last Revised : 27/3/93(pwd)
  2098.  
  2099.        Sharing      : Reading       - DenyNone + ReadOnly
  2100.                       Insert/Update - DenyWrite + ReadWrite
  2101.  
  2102.        ********************************************************** *)
  2103.  
  2104.        rumourrecord = record
  2105.           userinput  : string[70];
  2106.           compiled   : string[100];
  2107.           username   : userstring;
  2108.           lastupdate : smallword;
  2109.           freespace  : array[1..46] of byte;
  2110.        end;
  2111.  
  2112.        (* **********************************************************
  2113.  
  2114.        Filename     : <systempath>LANGUAGE.EZY
  2115.  
  2116.        Description  : Language Information Setup
  2117.  
  2118.        Min Size     : 1 Record
  2119.  
  2120.        Max Size     : 250 Records
  2121.  
  2122.        Last Revised : 7/1/94(pwd)
  2123.  
  2124.        Sharing      : Reading       - DenyNone + ReadOnly
  2125.                       Insert/Update - DenyWrite + ReadWrite
  2126.  
  2127.        ********************************************************** *)
  2128.  
  2129.        languagerecord = record
  2130.           LangName    : array[0..8] of char;
  2131.           Description : array[0..60] of char;
  2132.           RipPath,
  2133.           AvtPath,
  2134.           AnsiPath,
  2135.           AscPath,
  2136.           AslPath,
  2137.           G1Path,
  2138.           G2Path,
  2139.           G3Path,
  2140.           MnuPath,
  2141.           Mnu2Path,
  2142.           QAPath      : array[0..60] of char;
  2143.           Security    : securitytype;
  2144.           Attribute   : smallword;
  2145.            (*  Bit  0 : Default Language
  2146.                  1-15 : [Reserved] *)
  2147.           FreeSpace   : array[1..271] of char;
  2148.        end;
  2149.  
  2150.        (* **********************************************************
  2151.  
  2152.        Filename     : <systempath>DNBATCH.EZY
  2153.  
  2154.        Description  : Stores Download Batch of Terminated Sessions
  2155.  
  2156.        Min Size     : 1 Record
  2157.  
  2158.        Max Size     : Infinite Records
  2159.  
  2160.        Last Revised : 10/2/95(pwd)
  2161.  
  2162.        Sharing      : Reading       - DenyNone + ReadWrite
  2163.                       Delete/Insert - DenyNone + ReadWrite
  2164.                                       Lock Record 0 then proceed
  2165.  
  2166.        Record 0     : ForwardLink is a pointer to the first free
  2167.                       record
  2168.                       BackwardLink is a pointer to the start of the
  2169.                       list
  2170.  
  2171.        ********************************************************** *)
  2172.  
  2173.        DownloadBatchHistoryRecord = record
  2174.           Username      : UserString;
  2175.           DateAdded     : smallword;
  2176.           BatchFile     : PreDownloadRecord;
  2177.           PadTo192Bytes : array[1..18] of byte;
  2178.           ForwardLink   : longint;
  2179.           BackwardLink  : longint;
  2180.        end;
  2181.  
  2182.  
  2183. const
  2184.     fnoinherit = 128;  {      No Interitence Flag }
  2185.     fdenyall   = 16;   {      These are MUTUALLY EXCLUSIVE!!!!   }
  2186.     fdenywrite = 32;   {      Only ONE of THESE SHOULD BE USED   }
  2187.     fdenynone  = 64;   {                                         }
  2188.     fdenyread  = 48;   {                                         }
  2189.     freadonly  = 0;               {     THESE ALSO!!!  }
  2190.     fwriteonly = 1;               {                    }
  2191.     freadwrite = 2;               {                    }
  2192.  
  2193.